{% extends "base.html" %}

{% block body %}
<div style="resize: both; overflow:auto; display:block;margin-top:5px" class="card bg-card-body" id="callback_table">
    <div class="input-group">
        <button type="button" class="btn btn-sm btn{{config['outline-buttons']}}success" @click="add_callback_to_table()"><i class="fas fa-plus"></i> Add Callback to Page</button>
        <select class="form-control" id="callback_options_select"><option v-for="c in callback_options" :key="c.id" :value="c.id">[[c.id]]: [[c.user]]@[[c.host]] ([[c.pid]]) - [[c.description]]</option></select>
    </div>
    <template v-for="callback in callbacks">
        <div class="card border border-dark shadow bg-card-body" :style="'display: inline-block;padding:2px;width:' + (100/Object.keys(callbacks).length) + '%'">
            <div class="card-header bg-header border border-dark shadow text-white">
            <button v-if="Object.keys(callbacks).length > 1" @click="remove_callback(callback)" class="btn btn-sm btn{{config['outline-buttons']}}danger" style="margin:0">X</button> Callback [[callback.id]]: [[callback.user]]@[[callback.host]] ([[callback.pid]])<br>
            Type: [[callback.payload_type]], Initial Check-in: [[ toLocalTime(callback.init_callback) ]]<br>
            Last Checkin: [[ callback.real_time  ]]<br>
                Description: <span class="display"> <b>[[callback.description]]</b></span>
                <template v-if="callback.locked">
                    <br><i class="fas fa-user-lock"></i> Locked by <span class="operator">[[callback.locked_operator]]</span>
                </template>
            </div>

        <div class="card bg-card-body border border-dark shadow" style="overflow-y:auto;height:calc(69vh);margin:0" :id="'callbackoutput' + callback.id">
            <template id="'taskview' + callback.id">
                <transition-group>
                    <div class="card bg-card-body border border-dark shadow" v-for="task in callback.tasks" :key="task.id" :id="'task' + task.id"  v-if="apply_filter(task)" style="word-wrap: break-word;margin:1px">
                        <transition-group>
                    <div class="card-header border-dark bg-header-dark" v-if="apply_filter(task)" :key="'headera' + task.id" style="position:-webkit-sticky;position:sticky;top:0;padding-bottom:0;padding-top:0px;padding-left:0;white-space:nowrap;overflow:auto;width:100%">
                        <transition-group>
                         <button v-if="task.comment != '' && task.comment_visible" :key="'keya' + task.id" class="btn btn{{config['outline-buttons']}}danger btn-sm" @click="remove_comment(task.id)" style="padding:0px 4px;margin-left:2px;margin-top:2px;border:0"><i class="fas fa-trash-alt"></i></button>
                         <p v-if="task.comment != '' && task.comment_visible" :key="'keyb' + task.id" class="card-text" style="margin:0;display:inline-block">
                            <small class="text-muted">[[task.comment_operator]]'s comment:</small></p>
                         <pre v-if="task.comment != '' && task.comment_visible" :key="'keyc' + task.id" style="padding-left:27px">[[task.comment]]</pre>
                         <hr v-if="task.comment != '' && task.comment_visible" :key="'keyd' + task.id" style="margin-bottom: 0;margin-top:6px">
                         <div class="btn-group dropup" :key="'statusdropdown' + task.id" style="display:inline-block">
                             <template v-if="task.badges > 0"><span style="padding:5px 10px 5px 10px" class="badge badge-danger pull-right">[[task.badges]]</span></template>
                             <template v-if="task.opsec_pre_blocked === true && task.opsec_pre_bypassed === false">
                                 <button class="btn btn{{config['outline-buttons']}}warning btn-sm dropdown-toggle" style="border:0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="card-text">OPSEC BLOCKED (PRE)</span></button>
                             </template>
                             <template v-else-if="task.opsec_post_blocked === true && task.opsec_post_bypassed === false">
                                 <button class="btn btn{{config['outline-buttons']}}warning btn-sm dropdown-toggle" style="border:0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="card-text">OPSEC BLOCKED (POST)</span></button>
                             </template>
                            <template v-else-if="task.status.includes('error')">
                                <button class="btn btn{{config['outline-buttons']}}danger btn-sm dropdown-toggle"  style="border:0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="card-text">[[task.status]]</span></button>
                            </template>
                            <template v-else-if="task.completed == true || task.status === 'completed'">
                                <button class="btn btn{{config['outline-buttons']}}success btn-sm dropdown-toggle" style="border:0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="card-text">completed</span></button>
                            </template>
                            <template v-else-if="task.status == 'processed'">
                                <button class="btn btn{{config['outline-buttons']}}primary btn-sm dropdown-toggle"  style="border:0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="card-text">[[task.status]]</span></button>
                            </template>
                            <template v-else-if="task.status == 'processing' || task.status == 'cleared'">
                                <button class="btn btn{{config['outline-buttons']}}warning btn-sm dropdown-toggle"  style="border:0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="card-text">[[task.status]]</span></button>
                            </template>

                            <template v-else>
                                <button class="btn btn{{config['outline-buttons']}}info btn-sm dropdown-toggle"  style="border:0" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="card-text">[[task.status]]</span></button>
                            </template>
                            <div class="dropdown-menu">
                                <a class="dropdown-item" href="#" data-toggle="tooltip" title="Add comment to task" @click="add_comment(task)"><i class="fas fa-comments"></i> Comment</a>
                                <a class="dropdown-item" href="#" data-toggle="tooltip" title="download raw output" @click="download_raw_output(task.id)"><i class="fas fa-save"></i> Save Output</a>
                                <a class="dropdown-item" href="#" data-toggle="tooltip" title="Copy command to clipboard" @click="copyStringToClipboard(task.command + ' ' + task.original_params)"><i class="far fa-copy" ></i> Copy Command</a>
                                <a class="dropdown-item" href="#" data-toggle="tooltip" title="Toggle application of browser scripts to output of this task" @click="task.use_scripted = !task.use_scripted"><i class="fas fa-code"></i>
                                    <template v-if="task.use_scripted">
                                        Disable Browser Script
                                    </template>
                                    <template v-else>
                                        Enable Browser Script
                                    </template>
                                </a>
                                <a class="dropdown-item" href="#" data-toggle="tooltip" title="View Stdout/Stderr for task" @click="view_stdout_stderr(task)"><i class="fas fa-info-circle"></i>View Task Stdout/Stderr</a>
                                <a class="dropdown-item" href="#" data-toggle="tooltip" title="View all parameters for task" @click="view_all_parameters(task)"><i class="fas fa-info-circle"></i>View All Parameters</a>
                                <a class="dropdown-item" href="#" data-toggle="tooltip" title="View/Edit all tags for task" @click="view_all_tags(task)"><i class="fas fa-edit"></i>View/Edit Tags</a>
                                <template v-if="task.opsec_pre_blocked !== null || task.opsec_post_blocked !== null">
                                    <a class="dropdown-item" href="#" data-toggle="tooltip" title="View OPSEC block info" @click="view_opsec_block(task)"><i class="fas fa-info-circle"></i>View OPSEC Message</a>
                                </template>
                                <template v-if="task.opsec_pre_blocked && task.opsec_pre_bypassed === false">
                                    <a class="dropdown-item" href="#" data-toggle="tooltip" title="submit bypass request" @click="submit_opsec_bypass_request(task)"><i class="fas fa-info-circle"></i>Submit Bypass Request ([[task.opsec_pre_bypass_role]])</a>
                                </template>
                                <template v-else-if="task.opsec_post_blocked && task.opsec_post_bypassed === false">
                                    <a class="dropdown-item" href="#" data-toggle="tooltip" title="submit bypass request" @click="submit_opsec_bypass_request(task)"><i class="fas fa-info-circle"></i>Submit Bypass Request ([[task.opsec_post_bypass_role]])</a>
                                </template>
                                <template v-if="task.status === 'error: container down'">
                                    <a class="dropdown-item" href="#" data-toggle="tooltip" title="re-issue request" @click="reissue_request(task)"><i class="fas fa-info-circle"></i> Re-issue task</a>
                                </template>
                            </div>
                        </div>
                         <p :key="'mutedtext' + task.id" class="card-text" style="margin:0;padding-left:5px; display:inline-block"><small class="text-muted">
                            [[task.operator]]'s task: <a :href="task.href" target="_blank" data-toggle="tooltip" title="View task and output in a separate window">[[task.id]] </a> <template v-if="task.parent_task !== null">(subtask of <a :href="task.href" target="_blank" data-toggle="tooltip" title="View task and output in a separate window">[[task.parent_task]]</a>)</template>
                            - at [[toLocalTime(task.timestamp)]]
                         </small></p>
                         <a :key="'commentdots' + task.id" v-if="task.comment !== ''" style="padding-bottom:0" class="btn btn-link" type="button" @click="toggle_comment(task)"><i class="far fa-comment-dots" ></i></a>
                         <br :key="'br' + task.id">
                         <a :key="'toggleoutput' + task.id" class="btn btn-link" type="button" style="border:0;padding:0 0 5px 5px" data-toggle="collapse" :data-target="'#cardbody' + task.id" aria-expanded="false" :aria-controls="'cardbody' + task.id" @click="toggle_arrow(task)"><i :id="'color-arrow' + task.id" class="fas fa-plus fa-xs" data-toggle="tooltip" title="view / hide task output"></i></a>
                            <div style="display:inline-block" :key="'taskcommand' + task.id"><b>&nbsp;[[task.command]]&nbsp;</b></div>
                         <div style="display:inline-block" :key="'taskparams' + task.id">[[task.display_params]]</div>
                        </transition-group>
                    </div>
                    <div :key="'outputcontent' + task.id" class="collapse" :id="'cardbody' + task.id" style="">
                        <div :key="'outputcontentcardbody' + task.id" class="response-background card-body shadow" style="padding-top:0;padding-bottom: 0;" >
                            <span :key="'usescripted' + task.id" v-if="task.hasOwnProperty('scripted') && task.use_scripted" v-html="task.scripted"></span>
                            <span v-else :key="'useregular' + task.id" class="card-text" v-for="rsp in task.response" :key="rsp.id" :id="'response' + rsp.id" style="white-space: pre-wrap"><span class="response"><pre>[[rsp.response]]</pre></span></span>
                        </div>
                    </div>
                    </transition-group>
                    </div>
                </transition-group>
            </template>
        </div>
        <div class="card-footer bg-card-footer border border-dark">
            <div class="input-group mb-3">
                <input :id="'commandline:' + callback.payload_type + ':' + callback.id" type="text" class="form-control" v-model="callback.input_field"
                       :placeholder="callback.input_field_placeholder" aria-describedby="basic-addon1"
                       @keydown.enter="task_button(callback)" @keyup.up="cmd_history_up(callback)" @keyup.down="cmd_history_down(callback)"
                       style="position:relative;display:inline-block"
                >
                <span class="btn-group" style="position:relative">
                    <button type="button" class="btn btn{{config['outline-buttons']}}danger" @click="task_button(callback)">Submit Task</button>
                    <button type="button" data-toggle="modal" data-target="#editTaskFilter" class="btn btn-sm btn{{config['outline-buttons']}}primary"><font :color="hasFiltersSet ? '#ffc107' : '#C0C0C0'"><i class="fa fa-filter"></i></font></button>
                </span>
            </div>
        </div>
            <!-- START POPOVER FOR EDITING TASKING FILTER -->
        <div id="editTaskFilter" class="modal fade" role="dialog">
         <div class="modal-dialog modal-lg" role="document">
             <div class="modal-content">
                 <div class="modal-header bg-dark text-white">
                <h3>Filter Viewable Tasks</h3>
                <button type="button" class="close" data-dismiss="modal">×</button>
            </div>
             <div class="modal-body">
                 Filter displayed tasks by the operator who entered them, the task number, and/or the command itself.<br>
                 These filters are only visible to you and will disappear when you leave the page.
                 <table class="table-striped {{config['table-color']}} table" style="width:100%">
                    <tr>
                        <th style="width:7rem">Component</th>
                        <th style="width:4rem">Enabled</th>
                        <th>Values</th>
                    </tr>
                    <tr>
                        <td>Operator</td>
                        <td><span class="material-switch pull-right"><input class="form-control" type="checkbox" :checked="task_filters['operator']['active']" v-model="task_filters['operator']['active']" id="task_filter_operator"><label for="task_filter_operator" class="btn-warning"></label></span></td>
                        <td>
                            <template v-if="task_filters['operator']['active']">
                                <input class="form-control" v-model="task_filters['operator']['username']" type="text" placeholder="Username includes..." style="width:100%">
                            </template>
                        </td>
                    </tr>
                     <tr>
                         <td>Task Number</td>
                         <td><span class="material-switch pull-right"><input class="form-control" type="checkbox" :checked="task_filters['task']['active']" v-model="task_filters['task']['active']" id="task_filter_task"><label for="task_filter_task" class="btn-warning"></label></span></td>
                        <td>
                            <template v-if="task_filters['task']['active']">
                                <input class="form-control" type="number" size="7" v-model="task_filters['task']['range_low']"> ->
                                <input class="form-control" type="number" size="7" v-model="task_filters['task']['range_high']">
                            </template>
                        </td>
                     </tr>
                     <tr>
                         <td>Command</td>
                         <td><span class="material-switch pull-right"><input class="form-control" type="checkbox" :checked="task_filters['command']['active']" v-model="task_filters['command']['active']" id="task_filter_command"><label for="task_filter_command" class="btn-warning"></label></span></td>
                        <td>
                            <template v-if="task_filters['command']['active']">
                                <input class="form-control" v-model="task_filters['command']['cmd']" type="text" placeholder="Command includes..." style="width:100%">
                            </template>
                        </td>
                     </tr>
                     <tr>
                         <td>Has Comment</td>
                         <td><span class="material-switch pull-right"><input class="form-control" type="checkbox" :checked="task_filters['comment']['active']" v-model="task_filters['comment']['active']" id="task_filter_comment"><label for="task_filter_comment" class="btn-warning"></label></span></td>
                        <td>
                            Only show tasks with comments
                        </td>
                     </tr>
                </table>
             </div>
             <div class="modal-footer">
                <button class="btn btn{{config['outline-buttons']}}success" data-dismiss="modal" aria-hidden="true">Confirm</button>
            </div>
             </div>
         </div>
    </div>
        <!-- END POPOVER FOR EDITING TASKING FILTER -->
        </div>
    </template>
</div>
<!-- THIS IS OUR MODAL FOR ADDING A COMMENT -->
<div class="modal fade bs-example-modal-md" id="addCommentModal" role="dialog" >
    <div class="modal-dialog modal-xl" role="document">
        <div class="modal-content">
            <div class="modal-header bg-dark text-white">
                <h3>Add / Edit Comment</h3>
                 <button type="button" class="close" data-dismiss="modal">×</button>
            </div>
              <div class="modal-body">
                <textarea class="form-control" rows="25" cols="50" id="addCommentTextArea"></textarea>
              </div>
              <div class="modal-footer">
                <button class="btn btn{{config['outline-buttons']}}success" data-dismiss="modal" id="addCommentSubmit" aria-hidden="true">Submit</button>
              </div>
        </div>
    </div>
</div>
<!-- END MODAL FOR ADDING A COMMENT -->
<!-- THIS IS OUR MODEL FOR PROMPTING FOR COMMAND PARAMETERS -->
<div class="modal fade bs-example-modal-xl" id="paramsModal" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog modal-xl" role="document">
        <div class="modal-content">
            <div class="modal-header bg-dark text-white">

                <h3 id="paramsModalHeader">[[cmd.cmd]]'s Parameters</h3>
                <button type="button" class="close" data-dismiss="modal">×</button>

            </div>
              <div class="modal-body" id="paramsBody" style="overflow-wrap:break-word">
                  <pre style="word-wrap:break-word;white-space:pre-wrap">
<b>Description:</b>[[cmd.description]]
<b>Help:</b> [[cmd.help_cmd]]
<b>Needs Admin Permissions: <span :style="cmd.needs_admin ? 'color:indianred' : ''">[[cmd.needs_admin]]</span></b></pre>
                  <button class="btn btn-sm btn{{config['outline-buttons']}}info" @click="restore_default_values()">Restore Default Values</button>
                <table id="paramsTable" class="table table-striped {{config['table-color']}} shadow border border-dark" style="width:100%">
                    <tr>
                        <th style="padding:10px;margin:10px;text-align:center;width:15rem">Parameter</th>
                        <th style="text-align:left">Value</th>
                    </tr>
                    <tr v-for="(param, pindex) in command_params" :key="param.id">
                        <td style="padding:10px;margin:10px;text-align:left">
                            <div class="tooltip">[[param.name]]<span v-if="param.required">
                                <br><b style="color:indianred">Required</b>
                            </span>
                                <span data-container="body" data-boundary="viewport" class="tooltiptext" v-if="param.description.length > 0">[[param.description]]</span>
                                <span data-container="body" class="tooltiptext" v-else>No Description</span>
                            </div>
                        </td>
                        <td style="text-align:left">
                            <span v-if="param.type == 'String'">
                                <input :id="'paramindex' + pindex" class="form-control" type="text" :placeholder="param.default_value" v-model="param.string_value" size="90">
                            </span>
                            <span v-else-if="param.type.includes('Credential')">
                                <select :id="'paramindex' + pindex" class="form-control" v-model="param.credential_id">
                                    <option value="0">Select One...</option>
                                    <template v-if="param.type.includes('JSON')">
                                        <option v-for="cred in credentials" :value="cred.id">
                                            [[cred.account]]@[[cred.realm]] - [[cred.credential.substring(0,32)]]
                                            <template v-if="cred.comment !== ''">
                                               - [[cred.comment]]
                                            </template>
                                        </option>
                                    </template>
                                    <template v-else-if="param.type.includes('Account')">
                                        <option v-for="cred in accounts" :value="cred.id">
                                            [[cred.account]]
                                        </option>
                                    </template>
                                    <template v-else-if="param.type.includes('Realm')">
                                        <option v-for="cred in realms" :value="cred.id">
                                            [[cred.realm.substring(0, 100)]]
                                        </option>
                                    </template>
                                    <template v-else-if="param.type.includes('Type')">
                                        <option v-for="cred in types" :value="cred.id">
                                            [[cred.type]]
                                        </option>
                                    </template>
                                    <template v-else>
                                        <option v-for="cred in credentials_unique" :value="cred.id">
                                            [[cred.credential.substring(0, 100)]]
                                        </option>
                                    </template>
                                </select>
                            </span>
                            <span v-else-if="param.type == 'Number'">
                                <input :id="'paramindex' + pindex" class="form-control" type="number" v-model="param.number_value">
                            </span>
                            <span v-else-if="param.type == 'Choice'">
                                <select :id="'paramindex' + pindex" class="form-control" v-model="param.choice_value">
                                    <option v-for="opt in param.choices" :value="opt">[[opt]]</option>
                                </select>
                            </span>
                            <span v-else-if="param.type == 'ChoiceMultiple'">
                                <select :id="'paramindex' + pindex" class="form-control" multiple v-model="param.choicemultiple_value">
                                    <option v-for="opt in param.choices" :value="opt">[[opt]]</option>
                                </select>
                            </span>
                            <span v-else-if="param.type == 'Boolean'">
                                &nbsp;<span :id="'paramindex' + pindex" class="material-switch pull-right"><input class="form-control" type="checkbox" v-model="param.boolean_value" :id="'param' + param.id">
                                <label :for="'param' + param.id" class="btn-info"></label></span>
                            </span>
                            <span v-else-if="param.type == 'Array'">
                                <div v-for="(arg, index) in param.array_value" :key="index">
                                    <span class="input-group">
                                        <button class="btn btn{{config['outline-buttons']}}danger btn-sm" @click="command_params_remove_array_element(param, index)"><i class="fas fa-trash-alt" ></i></button>
                                        <textarea :id="'paramindex' + pindex" class="form-control" v-model="param.array_value[index]" rows="1" cols="60" @input="split_input_params(param, index)"></textarea>
                                    </span>
                                </div>
                                <button class="btn btn{{config['outline-buttons']}}success btn-sm" @click="command_params_add_array_element(param);">Add Element</button>
                            </span>
                            <span v-else-if="param.type == 'File'">
                                <input class="form-control-file" type="file" :id="'fileparam' + param.id">
                            </span>
                            <span v-else-if="param.type === 'PayloadList'">
                                <select :id="'paramindex' + pindex" class="form-control" v-model="param.payloadlist_value">
                                    <option v-for="p in param.payloads" :value="p.uuid">[[ p.payload_list_selection ]] </option>
                                </select>
                            </span>
                            <span v-else-if="param.type == 'AgentConnect'">
                                <table class="table table-striped {{config['table-color']}} shadow border border-dark" style="margin-bottom:0">
                                    <tbody mode="out-in" is="transition-group">
                                        <tr key="2" v-if="param.manually_add_payloadonhost">
                                            <td>Hostname</td>
                                            <td>
                                                <input class="form-control" type="text" style="width:80%" v-model="param.manually_add_payloadonhost_hostname">
                                            </td>
                                        </tr>
                                        <tr key="3" v-if="param.manually_add_payloadonhost">
                                            <td>Template</td>
                                            <td>
                                                <select class="form-control" v-model="param.manually_add_payloadonhost_template">
                                                    <option v-for="p in payloads" :value="p.uuid">[[ p.payload_list_selection]]</option>
                                                </select>
                                            </td>
                                        </tr>
                                        <tr key="4" v-if="param.manually_add_payloadonhost">
                                            <td><button class="btn btn{{config['outline-buttons']}}success btn-sm" @click="submit_manually_add_payloadonhost(param)"><i class="fas fa-plus"></i> Add</button></td>
                                            <td><button class="btn btn{{config['outline-buttons']}}warning btn-sm" @click="cancel_manually_add_payloadonhost(param)"><i class="fas fa-times-circle"></i> Cancel</button></td>
                                        </tr>
                                    </tbody>
                                    <tr>
                                        <td style="width:10rem">
                                            <button class="btn btn-sm btn{{config['outline-buttons']}}danger" @click="delete_host(param)" style="margin:0;padding:0 2px 0 2px;border:0"><i class="fas fa-trash"></i></button> Host
                                        </td>
                                        <td>
                                            <select class="form-control" v-model="param.agentconnect_host" @change="select_specific_payload_on_host(param)">
                                                <option value="">Select One...</option>
                                                <option v-for="(poh, val) in payloadonhost" :value="val">
                                                    [[ val ]]
                                                </option>
                                            </select>
                                             <button class="btn btn{{config['outline-buttons']}}success btn-sm" @click="manually_add_payloadonhost(param)" style="border:0;margin:0;padding:0 2px 0 2px"><i class="fas fa-plus"></i></button>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <button class="btn btn-sm btn{{config['outline-buttons']}}danger" @click="delete_payload_on_host(param)" style="margin:0;padding:0 2px 0 2px;border:0"><i class="fas fa-trash"></i></button> Payload
                                        </td>
                                        <td>
                                            <select class="form-control" v-model="param.agentconnect_payload" @change="select_specific_c2profile_in_agent(param)">
                                                <option value="" selected>Select One...</option>
                                                <option v-for="(payload, index) in param.payloads" :value="index">
                                                    <template v-if="payload.type === 'payload'">
                                                        [[ payload.payload.payload_type ]] - [[ payload.payload.tag ]]
                                                    </template>
                                                    <template v-else>
                                                        Callback [[ payload.id ]] - [[ payload.description ]]
                                                    </template>
                                                </option>
                                            </select>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            C2 Profile
                                        </td>
                                        <td>
                                            <select class="form-control" v-model="param.agentconnect_c2profile">
                                                <option value=-1 selected>Select One...</option>
                                                <option v-for="(profile, index) in param.c2profiles" :value="index" :disabled="!profile.is_p2p">[[profile.name]]</option>
                                            </select>
                                        </td>
                                    </tr>
                                    <template v-if="param.agentconnect_c2profile != -1">
                                        <tr>
                                            <table class="table table-striped {{config['table-color']}} shadow border border-dark">
                                                <tr>
                                                    <th style="padding:5px;text-align:left">Parameter</th>
                                                    <th style="padding:5px;text-align:left">Value</th>
                                                </tr>
                                                <tr v-for="(v, k, i) in param.c2profiles[param.agentconnect_c2profile]['parameters']">
                                                    <td>[[k]]</td>
                                                    <td>[[v]]</td>
                                                </tr>
                                            </table>
                                        </tr>
                                    </template>
                                </table>
                            </span>
                        </td>
                    </tr>
                </table>
              </div>
              <div class="modal-footer">
                <button class="btn btn{{config['outline-buttons']}}warning" data-dismiss="modal" aria-hidden="true">Cancel</button>
                <button class="btn btn{{config['outline-buttons']}}primary" data-dismiss="modal" id="paramsSubmit">Submit</button>
              </div>
        </div>
    </div>
</div>
<!-- END MODAL FOR PROMPTING FOR COMMAND PARAMETERS -->
<!-- THIS IS OUR MODEL FOR EDITING DESCRIPTION -->
<div class="modal fade bs-example-modal-md" id="editDescriptionModal" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog modal-md" role="document">
        <div class="modal-content">
            <div class="modal-header bg-dark text-white">
                <button type="button" class="close" data-dismiss="modal">×</button>
                <h3>Edit Description</h3>
            </div>
              <div class="modal-body">
                  <input class="form-control" class="text" size="60" id="editDescriptionText">
              </div>
            <div class="modal-footer">
                <button class="btn btn{{config['outline-buttons']}}warning" data-dismiss="modal" aria-hidden="true">Cancel</button>
                <button class="btn btn{{config['outline-buttons']}}primary" data-dismiss="modal" id="editDescriptionSubmit">Submit</button>
              </div>
        </div>
    </div>
</div>
<!-- END MODEL FOR EDITING DESCRIPTION -->
<!-- THIS IS OUR MODAL FOR ADDING A TAG -->
<div class="modal fade" id="addTagModal" role="dialog" >
    <div class="modal-dialog modal-xl" role="document">
        <div class="modal-content" id="addTagModalData">
            <div class="modal-header bg-dark text-white">
                <h3>Add / Edit Tags</h3>
                <button type="button" class="close" data-dismiss="modal">×</button>
            </div>
            Shift+Enter to add a new line when manually entering, or click "+" to add the selected tag:
            <span class="input-group" >
                <select class="form-control" v-model="selected_tag" style="width:auto;display:inline-block">
                    <option  v-for="o in tags" :value="o">[[ o ]]</option>
                </select>
                <button style="display:inline-block;float:right" class="btn btn-sm btn{{config['outline-buttons']}}success" @click="task_data.add_tag()"><i class="fas fa-plus"></i></button>
            </span>
          <div class="modal-body">
            <textarea class="form-control" rows="25" style="width:100%"  v-model="current_tags" id="addTagTextArea"></textarea>
          </div>
          <div class="modal-footer">
              <button class="btn btn{{config['outline-buttons']}}warning" data-dismiss="modal" aria-hidden="true">Cancel</button>
              <button class="btn btn{{config['outline-buttons']}}success" data-dismiss="modal" id="addTagSubmit" aria-hidden="true">Submit</button>
          </div>
        </div>
    </div>
</div>
<!-- END MODAL FOR ADDING A TAG -->
{% endblock %}

{% block scripts %}
{% include "split_callback.js" %}
{% endblock %}

{% block body_config %}
.v-enter-active, .v-leave-active {
  transition: opacity 0.8s;
}
.v-enter, .v-leave-to /* .fade-leave-active below version 2.1.8 */ {
  opacity: 0;
}
{% endblock %}